package com.alks.function.service.stockdept.pcfactorystockquery;


import com.alks.entity.data.entity.PcDrawDetail;
import com.alks.entity.data.response.ResponseInfo;
import com.alks.function.data.request.stockdept.pcfactorystockwork.DrawActMtlRequest;
import com.alks.function.data.request.stockdept.pcfactorystockwork.DrawActProRequest;
import com.alks.function.data.request.stockdept.pcfactorystockwork.DrawDetailRequest;
import com.alks.function.data.request.stockdept.pcfactorystockwork.DrawReMtlRequest;
import com.alks.function.data.vo.MtlBaseVo;
import com.baomidou.mybatisplus.extension.service.IService;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface IReciveMtlService extends IService<PcDrawDetail> {
    ResponseInfo getDrawDetailQuery(DrawDetailRequest request);

    ResponseInfo getDrawActQuery(Integer id);

    ResponseInfo getDrawReMtlQuery(DrawReMtlRequest request);

    ResponseInfo DrawActPro(List<DrawActProRequest> request, Integer flag);

    ResponseInfo getDrawActMtlQuery(DrawActMtlRequest request);

    ResponseInfo drawDetailCancel(String slipNo, String mtlNo, String lotNo);

    /**
     * 重复请领发料数据重整
     */
    void drawRollBack();

    /**
     * 物料替代处理
     *
     * @param id  待替代ID
     * @param mtl 替代后物料编号
     */
    void drawMtlReplace(Integer id, MtlBaseVo mtl);

    /**
     * 物料ID和物料无法对应下应急措施 -- 替代后物料明细查询
     *
     * @param id 待查询数据
     * @return 物料ID
     */
    MtlBaseVo drawReplaceMtlQuery(@Param("id") Integer id);

    /**
     * 替代后物料明细删除
     * @param id 待删除数据
     */
    void drawReplaceDel(Integer id);

//    ResponseInfo drawDetailDelete(String slipNo);
}
